/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: org/jbpm/flow/serialization/protobuf/kogito_work_items.proto

// Protobuf Java Version: 3.25.5
package org.jbpm.flow.serialization.protobuf;

public final class KogitoWorkItemsProtobuf {
    private KogitoWorkItemsProtobuf() {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions(
                (com.google.protobuf.ExtensionRegistryLite) registry);
    }

    public interface HumanTaskWorkItemDataOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return Whether the taskName field is set.
         */
        boolean hasTaskName();

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return The taskName.
         */
        java.lang.String getTaskName();

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return The bytes for taskName.
         */
        com.google.protobuf.ByteString
                getTaskNameBytes();

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return Whether the taskDescription field is set.
         */
        boolean hasTaskDescription();

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return The taskDescription.
         */
        java.lang.String getTaskDescription();

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return The bytes for taskDescription.
         */
        com.google.protobuf.ByteString
                getTaskDescriptionBytes();

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return Whether the taskPriority field is set.
         */
        boolean hasTaskPriority();

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return The taskPriority.
         */
        java.lang.String getTaskPriority();

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return The bytes for taskPriority.
         */
        com.google.protobuf.ByteString
                getTaskPriorityBytes();

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return Whether the actualOwner field is set.
         */
        boolean hasActualOwner();

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return The actualOwner.
         */
        java.lang.String getActualOwner();

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return The bytes for actualOwner.
         */
        com.google.protobuf.ByteString
                getActualOwnerBytes();

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @return A list containing the potUsers.
         */
        java.util.List<java.lang.String>
                getPotUsersList();

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @return The count of potUsers.
         */
        int getPotUsersCount();

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @param index The index of the element to return.
         * @return The potUsers at the given index.
         */
        java.lang.String getPotUsers(int index);

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the potUsers at the given index.
         */
        com.google.protobuf.ByteString
                getPotUsersBytes(int index);

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @return A list containing the potGroups.
         */
        java.util.List<java.lang.String>
                getPotGroupsList();

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @return The count of potGroups.
         */
        int getPotGroupsCount();

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @param index The index of the element to return.
         * @return The potGroups at the given index.
         */
        java.lang.String getPotGroups(int index);

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the potGroups at the given index.
         */
        com.google.protobuf.ByteString
                getPotGroupsBytes(int index);

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @return A list containing the excludedUsers.
         */
        java.util.List<java.lang.String>
                getExcludedUsersList();

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @return The count of excludedUsers.
         */
        int getExcludedUsersCount();

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @param index The index of the element to return.
         * @return The excludedUsers at the given index.
         */
        java.lang.String getExcludedUsers(int index);

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the excludedUsers at the given index.
         */
        com.google.protobuf.ByteString
                getExcludedUsersBytes(int index);

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @return A list containing the adminUsers.
         */
        java.util.List<java.lang.String>
                getAdminUsersList();

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @return The count of adminUsers.
         */
        int getAdminUsersCount();

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @param index The index of the element to return.
         * @return The adminUsers at the given index.
         */
        java.lang.String getAdminUsers(int index);

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the adminUsers at the given index.
         */
        com.google.protobuf.ByteString
                getAdminUsersBytes(int index);

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @return A list containing the adminGroups.
         */
        java.util.List<java.lang.String>
                getAdminGroupsList();

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @return The count of adminGroups.
         */
        int getAdminGroupsCount();

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @param index The index of the element to return.
         * @return The adminGroups at the given index.
         */
        java.lang.String getAdminGroups(int index);

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the adminGroups at the given index.
         */
        com.google.protobuf.ByteString
                getAdminGroupsBytes(int index);

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return Whether the taskReferenceName field is set.
         */
        boolean hasTaskReferenceName();

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return The taskReferenceName.
         */
        java.lang.String getTaskReferenceName();

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return The bytes for taskReferenceName.
         */
        com.google.protobuf.ByteString
                getTaskReferenceNameBytes();
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData}
     */
    public static final class HumanTaskWorkItemData extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData)
            HumanTaskWorkItemDataOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use HumanTaskWorkItemData.newBuilder() to construct.
        private HumanTaskWorkItemData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private HumanTaskWorkItemData() {
            taskName_ = "";
            taskDescription_ = "";
            taskPriority_ = "";
            actualOwner_ = "";
            potUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            potGroups_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            excludedUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            adminUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            adminGroups_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            taskReferenceName_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new HumanTaskWorkItemData();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.class,
                            org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.Builder.class);
        }

        private int bitField0_;
        public static final int TASK_NAME_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object taskName_ = "";

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return Whether the taskName field is set.
         */
        @java.lang.Override
        public boolean hasTaskName() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return The taskName.
         */
        @java.lang.Override
        public java.lang.String getTaskName() {
            java.lang.Object ref = taskName_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                taskName_ = s;
                return s;
            }
        }

        /**
         * <code>optional string task_name = 1;</code>
         * 
         * @return The bytes for taskName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getTaskNameBytes() {
            java.lang.Object ref = taskName_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                taskName_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TASK_DESCRIPTION_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object taskDescription_ = "";

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return Whether the taskDescription field is set.
         */
        @java.lang.Override
        public boolean hasTaskDescription() {
            return ((bitField0_ & 0x00000002) != 0);
        }

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return The taskDescription.
         */
        @java.lang.Override
        public java.lang.String getTaskDescription() {
            java.lang.Object ref = taskDescription_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                taskDescription_ = s;
                return s;
            }
        }

        /**
         * <code>optional string task_description = 2;</code>
         * 
         * @return The bytes for taskDescription.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getTaskDescriptionBytes() {
            java.lang.Object ref = taskDescription_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                taskDescription_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TASK_PRIORITY_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private volatile java.lang.Object taskPriority_ = "";

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return Whether the taskPriority field is set.
         */
        @java.lang.Override
        public boolean hasTaskPriority() {
            return ((bitField0_ & 0x00000004) != 0);
        }

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return The taskPriority.
         */
        @java.lang.Override
        public java.lang.String getTaskPriority() {
            java.lang.Object ref = taskPriority_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                taskPriority_ = s;
                return s;
            }
        }

        /**
         * <code>optional string task_priority = 3;</code>
         * 
         * @return The bytes for taskPriority.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getTaskPriorityBytes() {
            java.lang.Object ref = taskPriority_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                taskPriority_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int ACTUAL_OWNER_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private volatile java.lang.Object actualOwner_ = "";

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return Whether the actualOwner field is set.
         */
        @java.lang.Override
        public boolean hasActualOwner() {
            return ((bitField0_ & 0x00000008) != 0);
        }

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return The actualOwner.
         */
        @java.lang.Override
        public java.lang.String getActualOwner() {
            java.lang.Object ref = actualOwner_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                actualOwner_ = s;
                return s;
            }
        }

        /**
         * <code>optional string actual_owner = 4;</code>
         * 
         * @return The bytes for actualOwner.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getActualOwnerBytes() {
            java.lang.Object ref = actualOwner_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                actualOwner_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int POT_USERS_FIELD_NUMBER = 5;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList potUsers_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @return A list containing the potUsers.
         */
        public com.google.protobuf.ProtocolStringList
                getPotUsersList() {
            return potUsers_;
        }

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @return The count of potUsers.
         */
        public int getPotUsersCount() {
            return potUsers_.size();
        }

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @param index The index of the element to return.
         * @return The potUsers at the given index.
         */
        public java.lang.String getPotUsers(int index) {
            return potUsers_.get(index);
        }

        /**
         * <code>repeated string pot_users = 5;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the potUsers at the given index.
         */
        public com.google.protobuf.ByteString
                getPotUsersBytes(int index) {
            return potUsers_.getByteString(index);
        }

        public static final int POT_GROUPS_FIELD_NUMBER = 6;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList potGroups_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @return A list containing the potGroups.
         */
        public com.google.protobuf.ProtocolStringList
                getPotGroupsList() {
            return potGroups_;
        }

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @return The count of potGroups.
         */
        public int getPotGroupsCount() {
            return potGroups_.size();
        }

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @param index The index of the element to return.
         * @return The potGroups at the given index.
         */
        public java.lang.String getPotGroups(int index) {
            return potGroups_.get(index);
        }

        /**
         * <code>repeated string pot_groups = 6;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the potGroups at the given index.
         */
        public com.google.protobuf.ByteString
                getPotGroupsBytes(int index) {
            return potGroups_.getByteString(index);
        }

        public static final int EXCLUDED_USERS_FIELD_NUMBER = 7;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList excludedUsers_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @return A list containing the excludedUsers.
         */
        public com.google.protobuf.ProtocolStringList
                getExcludedUsersList() {
            return excludedUsers_;
        }

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @return The count of excludedUsers.
         */
        public int getExcludedUsersCount() {
            return excludedUsers_.size();
        }

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @param index The index of the element to return.
         * @return The excludedUsers at the given index.
         */
        public java.lang.String getExcludedUsers(int index) {
            return excludedUsers_.get(index);
        }

        /**
         * <code>repeated string excluded_users = 7;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the excludedUsers at the given index.
         */
        public com.google.protobuf.ByteString
                getExcludedUsersBytes(int index) {
            return excludedUsers_.getByteString(index);
        }

        public static final int ADMIN_USERS_FIELD_NUMBER = 8;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList adminUsers_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @return A list containing the adminUsers.
         */
        public com.google.protobuf.ProtocolStringList
                getAdminUsersList() {
            return adminUsers_;
        }

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @return The count of adminUsers.
         */
        public int getAdminUsersCount() {
            return adminUsers_.size();
        }

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @param index The index of the element to return.
         * @return The adminUsers at the given index.
         */
        public java.lang.String getAdminUsers(int index) {
            return adminUsers_.get(index);
        }

        /**
         * <code>repeated string admin_users = 8;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the adminUsers at the given index.
         */
        public com.google.protobuf.ByteString
                getAdminUsersBytes(int index) {
            return adminUsers_.getByteString(index);
        }

        public static final int ADMIN_GROUPS_FIELD_NUMBER = 9;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList adminGroups_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @return A list containing the adminGroups.
         */
        public com.google.protobuf.ProtocolStringList
                getAdminGroupsList() {
            return adminGroups_;
        }

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @return The count of adminGroups.
         */
        public int getAdminGroupsCount() {
            return adminGroups_.size();
        }

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @param index The index of the element to return.
         * @return The adminGroups at the given index.
         */
        public java.lang.String getAdminGroups(int index) {
            return adminGroups_.get(index);
        }

        /**
         * <code>repeated string admin_groups = 9;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the adminGroups at the given index.
         */
        public com.google.protobuf.ByteString
                getAdminGroupsBytes(int index) {
            return adminGroups_.getByteString(index);
        }

        public static final int TASK_REFERENCE_NAME_FIELD_NUMBER = 10;
        @SuppressWarnings("serial")
        private volatile java.lang.Object taskReferenceName_ = "";

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return Whether the taskReferenceName field is set.
         */
        @java.lang.Override
        public boolean hasTaskReferenceName() {
            return ((bitField0_ & 0x00000010) != 0);
        }

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return The taskReferenceName.
         */
        @java.lang.Override
        public java.lang.String getTaskReferenceName() {
            java.lang.Object ref = taskReferenceName_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                taskReferenceName_ = s;
                return s;
            }
        }

        /**
         * <code>optional string task_reference_name = 10;</code>
         * 
         * @return The bytes for taskReferenceName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getTaskReferenceNameBytes() {
            java.lang.Object ref = taskReferenceName_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                taskReferenceName_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, taskName_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, taskDescription_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 3, taskPriority_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 4, actualOwner_);
            }
            for (int i = 0; i < potUsers_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 5, potUsers_.getRaw(i));
            }
            for (int i = 0; i < potGroups_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 6, potGroups_.getRaw(i));
            }
            for (int i = 0; i < excludedUsers_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 7, excludedUsers_.getRaw(i));
            }
            for (int i = 0; i < adminUsers_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 8, adminUsers_.getRaw(i));
            }
            for (int i = 0; i < adminGroups_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 9, adminGroups_.getRaw(i));
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 10, taskReferenceName_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, taskName_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, taskDescription_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, taskPriority_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, actualOwner_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < potUsers_.size(); i++) {
                    dataSize += computeStringSizeNoTag(potUsers_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getPotUsersList().size();
            }
            {
                int dataSize = 0;
                for (int i = 0; i < potGroups_.size(); i++) {
                    dataSize += computeStringSizeNoTag(potGroups_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getPotGroupsList().size();
            }
            {
                int dataSize = 0;
                for (int i = 0; i < excludedUsers_.size(); i++) {
                    dataSize += computeStringSizeNoTag(excludedUsers_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getExcludedUsersList().size();
            }
            {
                int dataSize = 0;
                for (int i = 0; i < adminUsers_.size(); i++) {
                    dataSize += computeStringSizeNoTag(adminUsers_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getAdminUsersList().size();
            }
            {
                int dataSize = 0;
                for (int i = 0; i < adminGroups_.size(); i++) {
                    dataSize += computeStringSizeNoTag(adminGroups_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getAdminGroupsList().size();
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, taskReferenceName_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData other = (org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData) obj;

            if (hasTaskName() != other.hasTaskName())
                return false;
            if (hasTaskName()) {
                if (!getTaskName()
                        .equals(other.getTaskName()))
                    return false;
            }
            if (hasTaskDescription() != other.hasTaskDescription())
                return false;
            if (hasTaskDescription()) {
                if (!getTaskDescription()
                        .equals(other.getTaskDescription()))
                    return false;
            }
            if (hasTaskPriority() != other.hasTaskPriority())
                return false;
            if (hasTaskPriority()) {
                if (!getTaskPriority()
                        .equals(other.getTaskPriority()))
                    return false;
            }
            if (hasActualOwner() != other.hasActualOwner())
                return false;
            if (hasActualOwner()) {
                if (!getActualOwner()
                        .equals(other.getActualOwner()))
                    return false;
            }
            if (!getPotUsersList()
                    .equals(other.getPotUsersList()))
                return false;
            if (!getPotGroupsList()
                    .equals(other.getPotGroupsList()))
                return false;
            if (!getExcludedUsersList()
                    .equals(other.getExcludedUsersList()))
                return false;
            if (!getAdminUsersList()
                    .equals(other.getAdminUsersList()))
                return false;
            if (!getAdminGroupsList()
                    .equals(other.getAdminGroupsList()))
                return false;
            if (hasTaskReferenceName() != other.hasTaskReferenceName())
                return false;
            if (hasTaskReferenceName()) {
                if (!getTaskReferenceName()
                        .equals(other.getTaskReferenceName()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasTaskName()) {
                hash = (37 * hash) + TASK_NAME_FIELD_NUMBER;
                hash = (53 * hash) + getTaskName().hashCode();
            }
            if (hasTaskDescription()) {
                hash = (37 * hash) + TASK_DESCRIPTION_FIELD_NUMBER;
                hash = (53 * hash) + getTaskDescription().hashCode();
            }
            if (hasTaskPriority()) {
                hash = (37 * hash) + TASK_PRIORITY_FIELD_NUMBER;
                hash = (53 * hash) + getTaskPriority().hashCode();
            }
            if (hasActualOwner()) {
                hash = (37 * hash) + ACTUAL_OWNER_FIELD_NUMBER;
                hash = (53 * hash) + getActualOwner().hashCode();
            }
            if (getPotUsersCount() > 0) {
                hash = (37 * hash) + POT_USERS_FIELD_NUMBER;
                hash = (53 * hash) + getPotUsersList().hashCode();
            }
            if (getPotGroupsCount() > 0) {
                hash = (37 * hash) + POT_GROUPS_FIELD_NUMBER;
                hash = (53 * hash) + getPotGroupsList().hashCode();
            }
            if (getExcludedUsersCount() > 0) {
                hash = (37 * hash) + EXCLUDED_USERS_FIELD_NUMBER;
                hash = (53 * hash) + getExcludedUsersList().hashCode();
            }
            if (getAdminUsersCount() > 0) {
                hash = (37 * hash) + ADMIN_USERS_FIELD_NUMBER;
                hash = (53 * hash) + getAdminUsersList().hashCode();
            }
            if (getAdminGroupsCount() > 0) {
                hash = (37 * hash) + ADMIN_GROUPS_FIELD_NUMBER;
                hash = (53 * hash) + getAdminGroupsList().hashCode();
            }
            if (hasTaskReferenceName()) {
                hash = (37 * hash) + TASK_REFERENCE_NAME_FIELD_NUMBER;
                hash = (53 * hash) + getTaskReferenceName().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData)
                org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemDataOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.class,
                                org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                taskName_ = "";
                taskDescription_ = "";
                taskPriority_ = "";
                actualOwner_ = "";
                potUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                potGroups_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                excludedUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                adminUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                adminGroups_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                taskReferenceName_ = "";
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData build() {
                org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData result =
                        new org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData result) {
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.taskName_ = taskName_;
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.taskDescription_ = taskDescription_;
                    to_bitField0_ |= 0x00000002;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.taskPriority_ = taskPriority_;
                    to_bitField0_ |= 0x00000004;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.actualOwner_ = actualOwner_;
                    to_bitField0_ |= 0x00000008;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    potUsers_.makeImmutable();
                    result.potUsers_ = potUsers_;
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    potGroups_.makeImmutable();
                    result.potGroups_ = potGroups_;
                }
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    excludedUsers_.makeImmutable();
                    result.excludedUsers_ = excludedUsers_;
                }
                if (((from_bitField0_ & 0x00000080) != 0)) {
                    adminUsers_.makeImmutable();
                    result.adminUsers_ = adminUsers_;
                }
                if (((from_bitField0_ & 0x00000100) != 0)) {
                    adminGroups_.makeImmutable();
                    result.adminGroups_ = adminGroups_;
                }
                if (((from_bitField0_ & 0x00000200) != 0)) {
                    result.taskReferenceName_ = taskReferenceName_;
                    to_bitField0_ |= 0x00000010;
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData.getDefaultInstance())
                    return this;
                if (other.hasTaskName()) {
                    taskName_ = other.taskName_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                if (other.hasTaskDescription()) {
                    taskDescription_ = other.taskDescription_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                if (other.hasTaskPriority()) {
                    taskPriority_ = other.taskPriority_;
                    bitField0_ |= 0x00000004;
                    onChanged();
                }
                if (other.hasActualOwner()) {
                    actualOwner_ = other.actualOwner_;
                    bitField0_ |= 0x00000008;
                    onChanged();
                }
                if (!other.potUsers_.isEmpty()) {
                    if (potUsers_.isEmpty()) {
                        potUsers_ = other.potUsers_;
                        bitField0_ |= 0x00000010;
                    } else {
                        ensurePotUsersIsMutable();
                        potUsers_.addAll(other.potUsers_);
                    }
                    onChanged();
                }
                if (!other.potGroups_.isEmpty()) {
                    if (potGroups_.isEmpty()) {
                        potGroups_ = other.potGroups_;
                        bitField0_ |= 0x00000020;
                    } else {
                        ensurePotGroupsIsMutable();
                        potGroups_.addAll(other.potGroups_);
                    }
                    onChanged();
                }
                if (!other.excludedUsers_.isEmpty()) {
                    if (excludedUsers_.isEmpty()) {
                        excludedUsers_ = other.excludedUsers_;
                        bitField0_ |= 0x00000040;
                    } else {
                        ensureExcludedUsersIsMutable();
                        excludedUsers_.addAll(other.excludedUsers_);
                    }
                    onChanged();
                }
                if (!other.adminUsers_.isEmpty()) {
                    if (adminUsers_.isEmpty()) {
                        adminUsers_ = other.adminUsers_;
                        bitField0_ |= 0x00000080;
                    } else {
                        ensureAdminUsersIsMutable();
                        adminUsers_.addAll(other.adminUsers_);
                    }
                    onChanged();
                }
                if (!other.adminGroups_.isEmpty()) {
                    if (adminGroups_.isEmpty()) {
                        adminGroups_ = other.adminGroups_;
                        bitField0_ |= 0x00000100;
                    } else {
                        ensureAdminGroupsIsMutable();
                        adminGroups_.addAll(other.adminGroups_);
                    }
                    onChanged();
                }
                if (other.hasTaskReferenceName()) {
                    taskReferenceName_ = other.taskReferenceName_;
                    bitField0_ |= 0x00000200;
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                taskName_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            case 18: {
                                taskDescription_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 26: {
                                taskPriority_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            case 34: {
                                actualOwner_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000008;
                                break;
                            } // case 34
                            case 42: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensurePotUsersIsMutable();
                                potUsers_.add(s);
                                break;
                            } // case 42
                            case 50: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensurePotGroupsIsMutable();
                                potGroups_.add(s);
                                break;
                            } // case 50
                            case 58: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureExcludedUsersIsMutable();
                                excludedUsers_.add(s);
                                break;
                            } // case 58
                            case 66: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureAdminUsersIsMutable();
                                adminUsers_.add(s);
                                break;
                            } // case 66
                            case 74: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureAdminGroupsIsMutable();
                                adminGroups_.add(s);
                                break;
                            } // case 74
                            case 82: {
                                taskReferenceName_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000200;
                                break;
                            } // case 82
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object taskName_ = "";

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @return Whether the taskName field is set.
             */
            public boolean hasTaskName() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @return The taskName.
             */
            public java.lang.String getTaskName() {
                java.lang.Object ref = taskName_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    taskName_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @return The bytes for taskName.
             */
            public com.google.protobuf.ByteString
                    getTaskNameBytes() {
                java.lang.Object ref = taskName_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    taskName_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @param value The taskName to set.
             * @return This builder for chaining.
             */
            public Builder setTaskName(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                taskName_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTaskName() {
                taskName_ = getDefaultInstance().getTaskName();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_name = 1;</code>
             * 
             * @param value The bytes for taskName to set.
             * @return This builder for chaining.
             */
            public Builder setTaskNameBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                taskName_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private java.lang.Object taskDescription_ = "";

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @return Whether the taskDescription field is set.
             */
            public boolean hasTaskDescription() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @return The taskDescription.
             */
            public java.lang.String getTaskDescription() {
                java.lang.Object ref = taskDescription_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    taskDescription_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @return The bytes for taskDescription.
             */
            public com.google.protobuf.ByteString
                    getTaskDescriptionBytes() {
                java.lang.Object ref = taskDescription_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    taskDescription_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @param value The taskDescription to set.
             * @return This builder for chaining.
             */
            public Builder setTaskDescription(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                taskDescription_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTaskDescription() {
                taskDescription_ = getDefaultInstance().getTaskDescription();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_description = 2;</code>
             * 
             * @param value The bytes for taskDescription to set.
             * @return This builder for chaining.
             */
            public Builder setTaskDescriptionBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                taskDescription_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            private java.lang.Object taskPriority_ = "";

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @return Whether the taskPriority field is set.
             */
            public boolean hasTaskPriority() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @return The taskPriority.
             */
            public java.lang.String getTaskPriority() {
                java.lang.Object ref = taskPriority_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    taskPriority_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @return The bytes for taskPriority.
             */
            public com.google.protobuf.ByteString
                    getTaskPriorityBytes() {
                java.lang.Object ref = taskPriority_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    taskPriority_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @param value The taskPriority to set.
             * @return This builder for chaining.
             */
            public Builder setTaskPriority(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                taskPriority_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTaskPriority() {
                taskPriority_ = getDefaultInstance().getTaskPriority();
                bitField0_ = (bitField0_ & ~0x00000004);
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_priority = 3;</code>
             * 
             * @param value The bytes for taskPriority to set.
             * @return This builder for chaining.
             */
            public Builder setTaskPriorityBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                taskPriority_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            private java.lang.Object actualOwner_ = "";

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @return Whether the actualOwner field is set.
             */
            public boolean hasActualOwner() {
                return ((bitField0_ & 0x00000008) != 0);
            }

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @return The actualOwner.
             */
            public java.lang.String getActualOwner() {
                java.lang.Object ref = actualOwner_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    actualOwner_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @return The bytes for actualOwner.
             */
            public com.google.protobuf.ByteString
                    getActualOwnerBytes() {
                java.lang.Object ref = actualOwner_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    actualOwner_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @param value The actualOwner to set.
             * @return This builder for chaining.
             */
            public Builder setActualOwner(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                actualOwner_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearActualOwner() {
                actualOwner_ = getDefaultInstance().getActualOwner();
                bitField0_ = (bitField0_ & ~0x00000008);
                onChanged();
                return this;
            }

            /**
             * <code>optional string actual_owner = 4;</code>
             * 
             * @param value The bytes for actualOwner to set.
             * @return This builder for chaining.
             */
            public Builder setActualOwnerBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                actualOwner_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList potUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensurePotUsersIsMutable() {
                if (!potUsers_.isModifiable()) {
                    potUsers_ = new com.google.protobuf.LazyStringArrayList(potUsers_);
                }
                bitField0_ |= 0x00000010;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @return A list containing the potUsers.
             */
            public com.google.protobuf.ProtocolStringList
                    getPotUsersList() {
                potUsers_.makeImmutable();
                return potUsers_;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @return The count of potUsers.
             */
            public int getPotUsersCount() {
                return potUsers_.size();
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param index The index of the element to return.
             * @return The potUsers at the given index.
             */
            public java.lang.String getPotUsers(int index) {
                return potUsers_.get(index);
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the potUsers at the given index.
             */
            public com.google.protobuf.ByteString
                    getPotUsersBytes(int index) {
                return potUsers_.getByteString(index);
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param index The index to set the value at.
             * @param value The potUsers to set.
             * @return This builder for chaining.
             */
            public Builder setPotUsers(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensurePotUsersIsMutable();
                potUsers_.set(index, value);
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param value The potUsers to add.
             * @return This builder for chaining.
             */
            public Builder addPotUsers(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensurePotUsersIsMutable();
                potUsers_.add(value);
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param values The potUsers to add.
             * @return This builder for chaining.
             */
            public Builder addAllPotUsers(
                    java.lang.Iterable<java.lang.String> values) {
                ensurePotUsersIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, potUsers_);
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearPotUsers() {
                potUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000010);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_users = 5;</code>
             * 
             * @param value The bytes of the potUsers to add.
             * @return This builder for chaining.
             */
            public Builder addPotUsersBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensurePotUsersIsMutable();
                potUsers_.add(value);
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList potGroups_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensurePotGroupsIsMutable() {
                if (!potGroups_.isModifiable()) {
                    potGroups_ = new com.google.protobuf.LazyStringArrayList(potGroups_);
                }
                bitField0_ |= 0x00000020;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @return A list containing the potGroups.
             */
            public com.google.protobuf.ProtocolStringList
                    getPotGroupsList() {
                potGroups_.makeImmutable();
                return potGroups_;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @return The count of potGroups.
             */
            public int getPotGroupsCount() {
                return potGroups_.size();
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param index The index of the element to return.
             * @return The potGroups at the given index.
             */
            public java.lang.String getPotGroups(int index) {
                return potGroups_.get(index);
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the potGroups at the given index.
             */
            public com.google.protobuf.ByteString
                    getPotGroupsBytes(int index) {
                return potGroups_.getByteString(index);
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param index The index to set the value at.
             * @param value The potGroups to set.
             * @return This builder for chaining.
             */
            public Builder setPotGroups(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensurePotGroupsIsMutable();
                potGroups_.set(index, value);
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param value The potGroups to add.
             * @return This builder for chaining.
             */
            public Builder addPotGroups(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensurePotGroupsIsMutable();
                potGroups_.add(value);
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param values The potGroups to add.
             * @return This builder for chaining.
             */
            public Builder addAllPotGroups(
                    java.lang.Iterable<java.lang.String> values) {
                ensurePotGroupsIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, potGroups_);
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearPotGroups() {
                potGroups_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000020);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string pot_groups = 6;</code>
             * 
             * @param value The bytes of the potGroups to add.
             * @return This builder for chaining.
             */
            public Builder addPotGroupsBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensurePotGroupsIsMutable();
                potGroups_.add(value);
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList excludedUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureExcludedUsersIsMutable() {
                if (!excludedUsers_.isModifiable()) {
                    excludedUsers_ = new com.google.protobuf.LazyStringArrayList(excludedUsers_);
                }
                bitField0_ |= 0x00000040;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @return A list containing the excludedUsers.
             */
            public com.google.protobuf.ProtocolStringList
                    getExcludedUsersList() {
                excludedUsers_.makeImmutable();
                return excludedUsers_;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @return The count of excludedUsers.
             */
            public int getExcludedUsersCount() {
                return excludedUsers_.size();
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param index The index of the element to return.
             * @return The excludedUsers at the given index.
             */
            public java.lang.String getExcludedUsers(int index) {
                return excludedUsers_.get(index);
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the excludedUsers at the given index.
             */
            public com.google.protobuf.ByteString
                    getExcludedUsersBytes(int index) {
                return excludedUsers_.getByteString(index);
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param index The index to set the value at.
             * @param value The excludedUsers to set.
             * @return This builder for chaining.
             */
            public Builder setExcludedUsers(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureExcludedUsersIsMutable();
                excludedUsers_.set(index, value);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param value The excludedUsers to add.
             * @return This builder for chaining.
             */
            public Builder addExcludedUsers(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureExcludedUsersIsMutable();
                excludedUsers_.add(value);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param values The excludedUsers to add.
             * @return This builder for chaining.
             */
            public Builder addAllExcludedUsers(
                    java.lang.Iterable<java.lang.String> values) {
                ensureExcludedUsersIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, excludedUsers_);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearExcludedUsers() {
                excludedUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000040);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string excluded_users = 7;</code>
             * 
             * @param value The bytes of the excludedUsers to add.
             * @return This builder for chaining.
             */
            public Builder addExcludedUsersBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureExcludedUsersIsMutable();
                excludedUsers_.add(value);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList adminUsers_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureAdminUsersIsMutable() {
                if (!adminUsers_.isModifiable()) {
                    adminUsers_ = new com.google.protobuf.LazyStringArrayList(adminUsers_);
                }
                bitField0_ |= 0x00000080;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @return A list containing the adminUsers.
             */
            public com.google.protobuf.ProtocolStringList
                    getAdminUsersList() {
                adminUsers_.makeImmutable();
                return adminUsers_;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @return The count of adminUsers.
             */
            public int getAdminUsersCount() {
                return adminUsers_.size();
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param index The index of the element to return.
             * @return The adminUsers at the given index.
             */
            public java.lang.String getAdminUsers(int index) {
                return adminUsers_.get(index);
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the adminUsers at the given index.
             */
            public com.google.protobuf.ByteString
                    getAdminUsersBytes(int index) {
                return adminUsers_.getByteString(index);
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param index The index to set the value at.
             * @param value The adminUsers to set.
             * @return This builder for chaining.
             */
            public Builder setAdminUsers(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureAdminUsersIsMutable();
                adminUsers_.set(index, value);
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param value The adminUsers to add.
             * @return This builder for chaining.
             */
            public Builder addAdminUsers(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureAdminUsersIsMutable();
                adminUsers_.add(value);
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param values The adminUsers to add.
             * @return This builder for chaining.
             */
            public Builder addAllAdminUsers(
                    java.lang.Iterable<java.lang.String> values) {
                ensureAdminUsersIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, adminUsers_);
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearAdminUsers() {
                adminUsers_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000080);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_users = 8;</code>
             * 
             * @param value The bytes of the adminUsers to add.
             * @return This builder for chaining.
             */
            public Builder addAdminUsersBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureAdminUsersIsMutable();
                adminUsers_.add(value);
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList adminGroups_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureAdminGroupsIsMutable() {
                if (!adminGroups_.isModifiable()) {
                    adminGroups_ = new com.google.protobuf.LazyStringArrayList(adminGroups_);
                }
                bitField0_ |= 0x00000100;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @return A list containing the adminGroups.
             */
            public com.google.protobuf.ProtocolStringList
                    getAdminGroupsList() {
                adminGroups_.makeImmutable();
                return adminGroups_;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @return The count of adminGroups.
             */
            public int getAdminGroupsCount() {
                return adminGroups_.size();
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param index The index of the element to return.
             * @return The adminGroups at the given index.
             */
            public java.lang.String getAdminGroups(int index) {
                return adminGroups_.get(index);
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the adminGroups at the given index.
             */
            public com.google.protobuf.ByteString
                    getAdminGroupsBytes(int index) {
                return adminGroups_.getByteString(index);
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param index The index to set the value at.
             * @param value The adminGroups to set.
             * @return This builder for chaining.
             */
            public Builder setAdminGroups(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureAdminGroupsIsMutable();
                adminGroups_.set(index, value);
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param value The adminGroups to add.
             * @return This builder for chaining.
             */
            public Builder addAdminGroups(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureAdminGroupsIsMutable();
                adminGroups_.add(value);
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param values The adminGroups to add.
             * @return This builder for chaining.
             */
            public Builder addAllAdminGroups(
                    java.lang.Iterable<java.lang.String> values) {
                ensureAdminGroupsIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, adminGroups_);
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearAdminGroups() {
                adminGroups_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000100);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string admin_groups = 9;</code>
             * 
             * @param value The bytes of the adminGroups to add.
             * @return This builder for chaining.
             */
            public Builder addAdminGroupsBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureAdminGroupsIsMutable();
                adminGroups_.add(value);
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            private java.lang.Object taskReferenceName_ = "";

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @return Whether the taskReferenceName field is set.
             */
            public boolean hasTaskReferenceName() {
                return ((bitField0_ & 0x00000200) != 0);
            }

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @return The taskReferenceName.
             */
            public java.lang.String getTaskReferenceName() {
                java.lang.Object ref = taskReferenceName_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    taskReferenceName_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @return The bytes for taskReferenceName.
             */
            public com.google.protobuf.ByteString
                    getTaskReferenceNameBytes() {
                java.lang.Object ref = taskReferenceName_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    taskReferenceName_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @param value The taskReferenceName to set.
             * @return This builder for chaining.
             */
            public Builder setTaskReferenceName(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                taskReferenceName_ = value;
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTaskReferenceName() {
                taskReferenceName_ = getDefaultInstance().getTaskReferenceName();
                bitField0_ = (bitField0_ & ~0x00000200);
                onChanged();
                return this;
            }

            /**
             * <code>optional string task_reference_name = 10;</code>
             * 
             * @param value The bytes for taskReferenceName to set.
             * @return This builder for chaining.
             */
            public Builder setTaskReferenceNameBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                taskReferenceName_ = value;
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.HumanTaskWorkItemData)
        private static final org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<HumanTaskWorkItemData> PARSER = new com.google.protobuf.AbstractParser<HumanTaskWorkItemData>() {
            @java.lang.Override
            public HumanTaskWorkItemData parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<HumanTaskWorkItemData> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<HumanTaskWorkItemData> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoWorkItemsProtobuf.HumanTaskWorkItemData getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor
            getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
    static {
        java.lang.String[] descriptorData = {
                "\n<org/jbpm/flow/serialization/protobuf/k" +
                        "ogito_work_items.proto\022$org.jbpm.flow.se" +
                        "rialization.protobuf\"\357\002\n\025HumanTaskWorkIt" +
                        "emData\022\026\n\ttask_name\030\001 \001(\tH\000\210\001\001\022\035\n\020task_d" +
                        "escription\030\002 \001(\tH\001\210\001\001\022\032\n\rtask_priority\030\003" +
                        " \001(\tH\002\210\001\001\022\031\n\014actual_owner\030\004 \001(\tH\003\210\001\001\022\021\n\t" +
                        "pot_users\030\005 \003(\t\022\022\n\npot_groups\030\006 \003(\t\022\026\n\016e" +
                        "xcluded_users\030\007 \003(\t\022\023\n\013admin_users\030\010 \003(\t" +
                        "\022\024\n\014admin_groups\030\t \003(\t\022 \n\023task_reference" +
                        "_name\030\n \001(\tH\004\210\001\001B\014\n\n_task_nameB\023\n\021_task_" +
                        "descriptionB\020\n\016_task_priorityB\017\n\r_actual" +
                        "_ownerB\026\n\024_task_reference_nameB\031B\027Kogito" +
                        "WorkItemsProtobufb\006proto3"
        };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor
                .internalBuildGeneratedFileFrom(descriptorData,
                        new com.google.protobuf.Descriptors.FileDescriptor[] {
                        });
        internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor =
                getDescriptor().getMessageTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_HumanTaskWorkItemData_descriptor,
                new java.lang.String[] { "TaskName", "TaskDescription", "TaskPriority", "ActualOwner", "PotUsers", "PotGroups", "ExcludedUsers", "AdminUsers", "AdminGroups", "TaskReferenceName", });
    }

    // @@protoc_insertion_point(outer_class_scope)
}
